Built-in Resolvers: Chain Resolver, URL Resolver, File System Resolver

Java Technologies - অ্যাপাচি আইভি (Apache IVY) Dependency Resolver ব্যবহার |
136
136

অ্যাপাচি আইভি (Apache Ivy) একটি ওপেন সোর্স ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা মূলত জাভা প্রকল্পের ডিপেন্ডেন্সি ম্যানেজমেন্টকে সহজ করে তোলে। Resolvers হল এমন মেকানিজম যা আইভি ব্যবহার করে নির্দিষ্ট ডিপেন্ডেন্সি বা লাইব্রেরি সংগ্রহ করার জন্য বিভিন্ন উৎস বা সোর্স অনুসন্ধান করে। অ্যাপাচি আইভি তিনটি মূল বিল্ট-ইন রেজলভারের মাধ্যমে ডিপেন্ডেন্সি রেজোলিউশন করতে পারে: Chain Resolver, URL Resolver, এবং File System Resolver

এই রেজলভারের মাধ্যমে আপনি আইভি রিপোজিটরির মধ্যে থেকে নির্দিষ্ট লাইব্রেরি বা ডিপেন্ডেন্সি সহজে সংগ্রহ করতে পারেন।


1. Chain Resolver:


Chain Resolver একটি কনফিগারেশন সিস্টেম, যা একাধিক রেজলভারের মধ্যে একটি চেইন তৈরি করে। এর মাধ্যমে আইভি একাধিক রেজলভারের মধ্যে অনুসন্ধান করবে, যখন একটি নির্দিষ্ট লাইব্রেরি বা ডিপেন্ডেন্সি প্রথম রেজলভারে না পাওয়া যায়, তখন পরবর্তী রেজলভারটিতে অনুসন্ধান করা হবে। এটি আপনাকে ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়াকে আরো নমনীয় এবং ব্যাপকভাবে কাস্টমাইজড করতে সহায়তা করে।

Chain Resolver কনফিগারেশন উদাহরণ:

<ivy-module version="2.0">
    <info organisation="com.example" module="myapp" revision="1.0"/>

    <repositories>
        <!-- Chain resolver configuration -->
        <chain name="myChainResolver">
            <resolver ref="local-repo"/>
            <resolver ref="remote-repo"/>
        </chain>

        <!-- Local repository -->
        <repository name="local-repo" path="path/to/local/repository"/>
        
        <!-- Remote repository -->
        <repository name="remote-repo" url="https://repo.maven.apache.org/maven2"/>
    </repositories>

    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
    </dependencies>
</ivy-module>

এখানে:

  • Chain Resolver myChainResolver একাধিক রেজলভারের মধ্যে অনুসন্ধান করবে, প্রথমে local-repo তারপর remote-repo তে লাইব্রেরি খুঁজবে।
  • ট্যাগ দ্বারা একাধিক রেজলভারকে একত্রিত করা হয়েছে।

Chain Resolver এর সুবিধা:

  • ফলস ব্যাকআপ: যদি প্রথম রেজলভারে লাইব্রেরি না পাওয়া যায়, তবে পরবর্তী রেজলভারে অনুসন্ধান করা হবে।
  • কাস্টমাইজড অনুসন্ধান: আপনি একাধিক উৎসের মধ্যে অনুসন্ধান করতে পারেন, যেমন লোকাল রিপোজিটরি, পাবলিক রিপোজিটরি, অথবা প্রাইভেট রিপোজিটরি।

2. URL Resolver:


URL Resolver এমন একটি রেজলভার যা URL থেকে লাইব্রেরি ডাউনলোড করতে সক্ষম। এটি মূলত রিমোট রিপোজিটরি বা লাইব্রেরি হোস্টিং সাইট থেকে ডিপেন্ডেন্সি সংগ্রহ করতে ব্যবহৃত হয়। URL রেজলভার আপনাকে নির্দিষ্ট ওয়েবসাইট বা সার্ভার থেকে ডিপেন্ডেন্সি সংগ্রহ করতে সহায়তা করে, যেমন Maven Central বা Ivy Repository

URL Resolver কনফিগারেশন উদাহরণ:

<ivy-module version="2.0">
    <info organisation="com.example" module="myapp" revision="1.0"/>

    <repositories>
        <!-- URL resolver configuration -->
        <resolver name="url-repo" url="https://repo.maven.apache.org/maven2"/>
    </repositories>

    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
    </dependencies>
</ivy-module>

এখানে:

  • URL Resolver https://repo.maven.apache.org/maven2 URL থেকে লাইব্রেরি ডাউনলোড করবে।

URL Resolver এর সুবিধা:

  • পাবলিক রিপোজিটরি থেকে লাইব্রেরি সংগ্রহ: পাবলিক রিপোজিটরি, যেমন Maven Central, থেকে লাইব্রেরি সরাসরি ডাউনলোড করতে সক্ষম।
  • রিমোট সোর্স থেকে লাইব্রেরি পাওয়া যায়: আপনি যে কোনো HTTP বা HTTPS URL থেকে লাইব্রেরি সংগ্রহ করতে পারেন।

3. File System Resolver:


File System Resolver একটি লোকার ডিপেন্ডেন্সি রেজলভার যা আপনার লোকাল ফাইল সিস্টেম থেকে ডিপেন্ডেন্সি সংগ্রহ করে। এটি সাধারণত সেই ক্ষেত্রে ব্যবহৃত হয় যখন ডিপেন্ডেন্সি লোকাল ডিরেক্টরিতে সংরক্ষিত থাকে এবং আপনি সেই ডিরেক্টরি থেকে লাইব্রেরি সংগ্রহ করতে চান। এটি সেই অবস্থায় উপকারী যখন আপনি কোনো কাস্টম রিপোজিটরি বা অফলাইন ডিপেন্ডেন্সি ম্যানেজমেন্ট সিস্টেম ব্যবহার করছেন।

File System Resolver কনফিগারেশন উদাহরণ:

<ivy-module version="2.0">
    <info organisation="com.example" module="myapp" revision="1.0"/>

    <repositories>
        <!-- File system resolver configuration -->
        <resolver name="local-file-repo" type="filesystem" path="file:///path/to/local/repository"/>
    </repositories>

    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
    </dependencies>
</ivy-module>

এখানে:

  • File System Resolver file:///path/to/local/repository থেকে লাইব্রেরি সংগ্রহ করবে।

File System Resolver এর সুবিধা:

  • লোকাল ডিপেন্ডেন্সি ম্যানেজমেন্ট: যখন আপনার ডিপেন্ডেন্সি লোকাল ফাইল সিস্টেমে থাকে, তখন এটি সহজেই অ্যাক্সেস করা যায়।
  • অফলাইন রিপোজিটরি: যদি আপনার ইন্টারনেট সংযোগ না থাকে, তবে এটি একটি অফলাইন রিপোজিটরি হিসাবে কাজ করতে পারে।
  • কাস্টম রিপোজিটরি: আপনি আপনার নিজস্ব ফাইল সিস্টেম বা প্রাইভেট রিপোজিটরি ব্যবহার করতে পারেন।

Resolvers এর সমন্বয় ব্যবহার


আপনি একাধিক রেজলভার ব্যবহার করে একটি কম্বিনেশন তৈরি করতে পারেন, যেমন Chain Resolver, URL Resolver, এবং File System Resolver একত্রিত করে। এটি নিশ্চিত করে যে আইভি একাধিক উৎস থেকে লাইব্রেরি সংগ্রহ করতে পারবে, যা ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়াকে আরও নমনীয় এবং শক্তিশালী করে।

Resolvers এর সমন্বয় উদাহরণ:

<ivy-module version="2.0">
    <info organisation="com.example" module="myapp" revision="1.0"/>

    <repositories>
        <!-- Chain resolver combining multiple resolvers -->
        <chain name="myChainResolver">
            <resolver ref="local-file-repo"/>
            <resolver ref="url-repo"/>
        </chain>

        <!-- File system resolver -->
        <resolver name="local-file-repo" type="filesystem" path="file:///path/to/local/repository"/>
        
        <!-- URL resolver -->
        <resolver name="url-repo" url="https://repo.maven.apache.org/maven2"/>
    </repositories>

    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
    </dependencies>
</ivy-module>

এখানে:

  • Chain Resolver দুটি রেজলভারকে একত্রিত করেছে — local-file-repo এবং url-repo
  • এটি প্রথমে লোকাল ফাইল সিস্টেমে অনুসন্ধান করবে এবং পরে রিমোট URL রিপোজিটরিতে লাইব্রেরি অনুসন্ধান করবে।

সারাংশ


Apache Ivy এর Built-in Resolvers (Chain Resolver, URL Resolver, এবং File System Resolver) ডিপেন্ডেন্সি সংগ্রহ করার জন্য বিভিন্ন উৎস বা সোর্স অনুসন্ধান করতে সাহায্য করে। Chain Resolver একাধিক রেজলভারকে চেইন আকারে ব্যবহার করতে দেয়, URL Resolver রিমোট সার্ভার বা URL থেকে ডিপেন্ডেন্সি ডাউনলোড করতে ব্যবহৃত হয়, এবং File System Resolver লোকাল ফাইল সিস্টেম থেকে ডিপেন্ডেন্সি সংগ্রহ করতে ব্যবহৃত হয়। এই রেজলভারের মাধ্যমে আপনি বিভিন্ন উৎস থেকে লাইব্রেরি সংগ্রহ করতে পারেন এবং ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়াকে আরও কাস্টমাইজড এবং নমনীয় করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion